package com.lt.lumentracks.constant;

public class RedisConstant {

    // 热门帖子，每天热门，最多1000条（zSet）-- 键 -> lt_hotPost:date:{日期}:  值 -> 成员：帖子ID  分数 -> 热度
    public static final String POST_HOT_KEY = "lt_hotPost:date:{}";

    // 用户点赞帖子key
    public static final String USER_LIKE_POST_KEY = "lt_userLike_post:userId:";

    // 用户收藏帖子key
    public static final String USER_COLLECT_POST_KEY = "lt_userCollect:userId:";


    // 缓存帖子标签key
    public static final String POST_TAG_KEY = "lt_postTag";

    // 缓存原始帖子详情key
    public static final String POST_RAW_DETAIL_KEY = "lt_postRawDetail:postId";


    // 用户最后阅读消息key -- 键 -> lt_userLastReadMsg:userId:用户ID:会话ID  值 -> 最后阅读消息ID
    public static final String USER_LAST_READ_MSG_KEY = "lt_userLastReadMsg";
    public static String userLastReadMsgKey(Integer userId, Long conversationId) {
        return String.format("%s:userId:%s:convId:%s", USER_LAST_READ_MSG_KEY, userId, conversationId);
    }


    /** 帖子的某条【评论】被哪些用户点赞了（set） <br>
     * 键 -> lt_userLike_postComment:commentId:评论ID <br>
     * 值 -> 用户ID <br>
     * 业务需求：用于查询某评论是否被用户点赞了
     * */
    public static final String USER_LIKE_POST_COMMENT_KEY_PREFIX = "lt_userLike_postComment:commentId:";

    /** 【用户】评论被点赞记录（zSet） <br>
     * 键 -> lt_userCommentLiked:userId:被点赞的用户ID <br>
     * 值 -> 成员--评论ID  分数--点赞时间戳 <br>
     * 业务需求：用于查询用户最近被点赞的评论
     * */
    public static final String USER_COMMENT_LIKED_KEY_PREFIX = "lt_userCommentLiked:userId:";

    /** 【用户】评论被点赞记录辅助key（zSet） <br>
     * 键 -> lt_userCommentLiked_aux:userId:被点赞的用户ID:commentId:对应的评论id <br>
     * 值 -> 成员--点赞用户的ID  分数--点赞时间戳 <br>
     * 业务需求：用于辅助查询用户最近被点赞的评论，记录评论具体是被谁点赞的，容量上限2，只记录最新的两人
     */
    public static final String USER_COMMENT_LIKED_AUX_KEY_PREFIX = "lt_userCommentLiked_aux:userId:{}:commentId:{}:";

    // 某条评论的点赞总数（zSet）（会被消费，不会长时间存在） -- 键 -> lt_commentLikeCount  值 -> 评论ID  分数 -> 点赞数量
    public static final String COMMENT_LIKE_COUNT_KEY = "lt_commentLikeCount";


    // 用户最近阅读的帖子（zSet），单key最多存储最近的100条数据，过期时间为10天 -- 键 -> lt_userCurrentReadPost:userId:用户ID:  值 -> 成员：帖子id  分数 -> 阅读时间
    public static final String USER_CURRENT_POST_KEY = "lt_userCurrentReadPost:userId:";
    public static int USER_CURRENT_READ_POST_MAXNUM = 100;

    // 用户最近阅读的话题（zSet），单key最多存储最近的10种话题 -- 键 -> lt_userPreferenceTopic:userId:用户ID:  值 -> 成员：话题id  分数 -> 阅读次数
    public static final String USER_PREFERENCE_TOPIC_KEY = "lt_userPreferenceTopic:userId:";
    public static int USER_PREFERENCE_TOPIC_MAXNUM = 10;

    // 用户最近阅读的标签（zSet），单key最多存储最近的15种标签 -- 键 -> lt_userPreferenceTag:userId:用户ID:  值 -> 成员：标签id  分数 -> 阅读次数
    public static final String USER_PREFERENCE_TAG_KEY = "lt_userPreferenceTag:userId:";
    public static int USER_PREFERENCE_TAG_MAXNUM = 15;

}
